package com.bh.ledger.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bh.ledger.domain.JcVerificationRecord;
import com.bh.ledger.domain.JcVerificationZb;

import java.util.List;

/**
 * 核销记录Service接口
 *
 * @author slx
 * @date 2023-04-24
 */
public interface IJcVerificationZbService extends IService<JcVerificationZb> {
    /**
     * 查询核销记录
     *
     * @param id 核销记录主键
     * @return 核销记录
     */
    public JcVerificationZb selectJcVerificationZbById(Long id);

    /**
     * 查询核销记录列表
     *
     * @param jcVerificationZb 核销记录
     * @return 核销记录集合
     */
    public List<JcVerificationZb> selectJcVerificationZbList(JcVerificationZb jcVerificationZb);

    /**
     * 收入核销记录列表
     *
     * @param jcVerificationZb 核销记录
     * @return 核销记录集合
     */
    public List<JcVerificationZb> selectIncomeList(JcVerificationZb jcVerificationZb);

    /**
     * 干线成本核销
     *
     * @param jcVerificationZb 核销记录
     * @return 核销记录集合
     */
    public List<JcVerificationZb> selectCostList(JcVerificationZb jcVerificationZb);

    /**
     * 提派成本核销
     *
     * @param jcVerificationZb 核销记录
     * @return 核销记录集合
     */
    public List<JcVerificationZb> selectDispatchList(JcVerificationZb jcVerificationZb);

    /**
     * 查询核销记录列表
     * @param orderId
     * @return
     */
    public List<JcVerificationZb> selectJcVerificationZbByJcOrderId(Long orderId);

    /**
     * 查询核销记录列表
     * @return
     */
    public List<JcVerificationZb> selectJcVerificationZbByShipmentId(Long shipmentId);

    /**
     * 新增核销记录
     *
     * @param jcVerificationZb 核销记录
     * @return 结果
     */
    public int insertJcVerificationZb(JcVerificationZb jcVerificationZb);

    /**
     * 修改核销记录
     *
     * @param jcVerificationZb 核销记录
     * @return 结果
     */
    public int updateJcVerificationZb(JcVerificationZb jcVerificationZb);

    /**
     * 新增核销记录
     *
     * @param jcVerificationRecord 核销记录
     * @return 结果
     */
    public int insertJcVerificationRecord(JcVerificationRecord jcVerificationRecord);

                                          /**
     * 修改核销记录
     *
     * @param jcVerificationRecord 核销记录
     * @return 结果
     */
    public int updateJcVerificationRecord(JcVerificationRecord jcVerificationRecord);

    /**
     * 批量删除核销记录
     *
     * @param ids 需要删除的核销记录主键集合
     * @return 结果
     */
    public int deleteJcVerificationZbByIds(Long[] ids);

    /**
     * 删除核销记录信息
     *
     * @param id 核销记录主键
     * @return 结果
     */
    public int deleteJcVerificationZbById(Long id);
    /**
     * 删除核销记录信息
     *
     * @param id
     * @return 结果
     */
    public int deleteJcVerificationZbByOrderId(Long id);
}
